﻿using System;
using Dexter.Domain.Model;

namespace Dexter.Domain.Contracts {
	/// <summary>
	/// 	Rapresents the contract for all <c>class</c> allowed to be on the feed output.
	/// </summary>
	public interface IFeedItem {
		/// <summary>
		/// 	Gets the feed item title.
		/// </summary>
		/// <value>The feed item title.</value>
		string FeedItemTitle { get; }

		/// <summary>
		/// 	Gets the feed item description.
		/// </summary>
		/// <value>The feed item description.</value>
		string FeedItemDescription { get; }

		/// <summary>
		/// 	Gets the feed item author.
		/// </summary>
		/// <value>The feed item author.</value>
		string FeedItemAuthor { get; }

		/// <summary>
		/// 	Gets the feed item publish date in <c>Coordinated Universal Time</c>.
		/// </summary>
		/// <value>The feed item publish date UTC.</value>
		DateTime FeedItemPublishDateUtc { get; }

		/// <summary>
		/// 	Gets the feed item categories.
		/// </summary>
		/// <value>The feed item categories.</value>
		string[] FeedItemCategories { get; }

		/// <summary>
		/// 	Gets the feed item owner.
		/// </summary>
		/// <value>The feed item owner.</value>
		Item FeedItemOwner { get; }
	}
}
